/*
 * $Id: EditAOItemMarketPrice.java 26 2013-05-20 06:00:59Z antonyhands@gmail.com $
 */
package ru.olympus.antonyhands.ao.ui;

import ru.olympus.antonyhands.ao.UIHelper;
import ru.olympus.antonyhands.ao.data.entities.AOItem;
import ru.olympus.antonyhands.ao.util.StringUtilities;

import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickListener;
import com.vaadin.ui.Component;
import com.vaadin.ui.CustomComponent;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Label;
import com.vaadin.ui.TextField;
import com.vaadin.ui.VerticalLayout;
import com.vaadin.ui.Button.ClickEvent;

/**
 * Компонент редактирования рыночной цены
 * 
 * @author AntonyHands
 * @since 20.05.2013
 */
public class EditAOItemMarketPrice extends CustomComponent
{
    private static final long serialVersionUID = 5368435501857107222L;

    private AOItem _item;
    private Component _returnComponent;

    private VerticalLayout mainComponent;

    /**
     * Редактирование рыночной цены
     * 
     * @param item - предмет, цену которого редактируем
     * @param returnComponent - компонент, в который возвращаемся после редактирования
     * (или при отмене редактирования)
     */
    public EditAOItemMarketPrice(AOItem item, Component returnComponent)
    {
        _item = item;
        _returnComponent = returnComponent;
        buildMainComponent();
        setCompositionRoot(mainComponent);
    }

    private Component buildMainComponent()
    {
        mainComponent = new VerticalLayout();

        mainComponent.addComponent(new Label(_item.getTitle()));

        final TextField price = new TextField("Рыночная цена");
        price.setValue(StringUtilities.longToString(_item.getMarketPrice()));
        mainComponent.addComponent(price);

        HorizontalLayout buttonsLayout = new HorizontalLayout();
        mainComponent.addComponent(buttonsLayout);

        Button okButton = new Button("Сохранить");
        okButton.addListener(new ClickListener()
        {
            private static final long serialVersionUID = -3452867208323461719L;

            @Override
            public void buttonClick(ClickEvent event)
            {
                _item.setMarketPrice(StringUtilities.stringToLong((String)price.getValue()));
                UIHelper.changeCurrentComponent(_returnComponent);
            }
        });
        buttonsLayout.addComponent(okButton);

        Button cancelButton = new Button("Отмена");
        cancelButton.addListener(new ClickListener()
        {
            private static final long serialVersionUID = -2300288721243624447L;

            @Override
            public void buttonClick(ClickEvent event)
            {
                UIHelper.changeCurrentComponent(_returnComponent);
            }
        });
        buttonsLayout.addComponent(cancelButton);

        return mainComponent;
    }
}
